<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
  <input type="text">
    <script>
      function operate(fn,interval){
        let startTime = 0

        function doOperate(){
          let currentTime = new Date().getTime()
          if(currentTime-startTime>=interval){
            fn.apply(this)
            startTime = currentTime
          }


        }
        return doOperate

      }



      let input = document.querySelector('input')
      let count = 1
      input.oninput = operate(function(){console.log(`这是第${count++}次执行`,this.value)},1000)
//         function delay(time) {
//         return new Promise(resolve => setTimeout(resolve, time))
//         }

//         async function asyncFunc() {
//         console.log('start')
//         await delay(1000)
//         console.log('after delay')
//         return 'done'
//         }

// asyncFunc().then(result => console.log(result))



      // var fn = function (x) {
      //   return x % 2 !== 0;
      // };
      // var arr = [1, 2, 5, 6, 78, 9, 10];
      // var result = arr.filter(fn);
      // console.log(result);
 // 将小数转换为整数，乘以相应的倍数
//  function flattenObject(obj, prefix = '') {
//   let result = {};

//   for (let key in obj) {
//     if (!obj.hasOwnProperty(key)) continue;

//     let newKey = prefix ? prefix + '.' + key : key;
//     let value = obj[key];

//     if (typeof value === 'object' && value !== null) {
//       let flatObj = flattenObject(value, newKey);
//       result = Object.assign(result, flatObj);
//     } else {
//       result[newKey] = value;
//     }
//   }

//   return result;
// }

// let multiDimObj = {
//   name: {
//     first: 'John',
//     last: 'Doe'
//   },
//   age: 30,
//   email: {
//     personal: 'john.doe@gmail.com',
//     work: 'jdoe@company.com'
//   }
// };

// let flattenedObj = flattenObject(multiDimObj);
// console.log(flattenedObj);

    </script>
</body>
</html>
